2016-09-25 28 views
0

我的计算机上有多个ASP MVC项目,并且每个人都使用身份框架以及具有[Authorize]属性的各种控制器。本地主机开发和部署的MVC身份Cookie安全最佳实践

我发现如果我用一个项目登录,然后在localhost上调试另一个项目,我可以绕过其他项目的安全性。

我知道这是因为localhost只有一个cookie,但是,是否有任何简单的方法可以解决这个问题以进行调试?在部署到公共互联网时是否存在安全隐患?

+1

配置身份验证时,确保每个项目指定不同的CookieName值。 –

+0

@ TiesonT.-我的cookies没有问题,我的默认身份验证cookie有问题,我无法重命名。此外,正如我所说,如果我可以登录到不同的应用程序与该项目中不存在的用户,我很想知道部署到互联网的最佳做法... – Wil

+1

为什么你不能改变身份验证cookie的名称?这始终是FormsAuthentication的一部分,OWIN也不例外。如果您所做的只是应用AuthorizeAttribute(不包含角色或声明),它只会检查auth cookie是否存在,而不是它源自当前应用程序 –

回答

1

由于@TiesonT表示您需要重命名每个应用程序的身份验证Cookie。你可以做到这一点在Startup.Auth.cs

app.UseCookieAuthentication(new CookieAuthenticationOptions 
{ 
    // other properties 
    CookieName = "MyCookieName", 
}); 

或者你可以设置你的开发计算机上的应用程序在IIS和给他们通过hosts文件,每个自己的域名。即MyApplication.dev,MyOtherApplication.dev