自定义类:
public class CustomIdentity: IIdentity
{
//省略。。。
private bool _isAuthenticated;
//是否通过认证
public virtual bool IsAuthenticated
{
get { return this._isAuthenticated; }
set { this._isAuthenticated = value; }
}
}
public class CustomPrincipal : IPrincipal
{
private CustomIdentity _user;
// 返回一个现实IIdentity接口的user对象
public IIdentity Identity
{
get { return this._user; }
}
}
登录按钮事件:
//登录验证用户名和密码后 ,
CustomPrincipal user=new CustomPrincipal ();
....
user.Identity.IsAuthenticated=true
Context.User=user;
这种写法与下面这种写法能达到同样的效果吗?
FormsAuthentication.SetAuthCookie(user.Name);
我自己认为可以,因为在其他页面判断是否验证的语句可以这么写
if (Request.IsAuthenticated)
//...
这里的Request.IsAuthenticated 实际上就是Context.User.Identity.IsAuthenticated,那么在前面已经赋值过了,在这个地方应该可以起效。不知道理解的对不对,希望大家能给出详细解答,谢谢!
自己实验了,不行