2010-09-14 16 views
2

我使用FormsAuthentication(使用Cookie)进行用户身份验证,并使用默认的cookie名称(“.ASPXAUTH”)。FormsAuthentication:如何为特定的子目录/ MVC控制器指定不同的cookie名称?

我需要的是一个用于“/ Admin /”虚拟目录(由ASP.NET MVC控制器,“AdminController”支持)的不同登录系统......就好像“/ Admin /”目录是另一个Web应用程序,但不在我的解决方案中创建另一个Web项目。

如何在运行时自定义FormsAuthentication使用的cookie名称? FormsAuthentication.FormsCookieName是只读的(并且是静态的...),并且可以在web.config中只定制一次...

我应该创建一个自定义FormsAuthenticationModule吗?

控制器过滤器,像下面,可能是巨大的:

[CustomFormsAuthenticationCookie("NewCookieName")] 
public class AdminController : Controller 
{ 

回答

1

诀窍是底层的认证框架真的不能处理这一点 - 你不能运行多个窗体身份验证位。最简单的解决方案是将管理员权限分成一个单独的网站,该网站最终将生活在其他地方,而不会陷入公共网站的身份验证。

+0

不幸的是,我在工作中提出了这个非常相同的想法,但他们拒绝了它们:他们不希望获得额外的Web应用程序:( – Notoriousxl 2010-09-14 21:12:26

相关问题