我想用asp.net基于Forms验证的角色验证授权,我在Webconfig里是这样设置的。
<location path="WebTest">
<system.web>
<authorization>
<allow roles="3" />
<deny users="?"/>
</authorization>
</system.web>
</location>[/align]
<system.web>
<authentication mode="Forms">
<forms loginUrl="WebTest/Login.aspx" timeout="30" defaultUrl="WebTest/Index.aspx" path="/">
</forms>
</authentication>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
我在登录代码里是:
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,name, DateTime.Now, DateTime.Now.AddMinutes(30),false,"2");
string strEncryptedTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, strEncryptedTicket);
问题是:1>当我把 <deny users="?"/>改成 <deny users="*"/>时间,不管roles正不正确都不能进入其他页面,总是在登录页面。
2>当我用这时<deny users="?"/>,不管ticket 里的UserData是不是webconfig里的roles便当后都可以直接进入页面。就是失去了角色的意义。
请高手帮忙解决一下。