Context.User.Identity.Name是什么意思?
在ASP.NET中有三种身份验证方式。当使用其中的一种来验证当前用户并通过时,必然要在服务器及客户端之间保存一种验证票据来保存验证信息。.NET提供类似于IIdentity的接口来完成该功能。请楼主注意,context.user是IPrincipal类型接口,而identity是IIdentity类型的接口。有四种类FormsIdentity GenericIdentity PassportIdentity WindowsIdentity实现了IIdentity接口。这几种类对应于.NET的几种验证模式。以上也差不多是废话,只是说了一下。 不过,请楼主看一下以上说的, 再对MSDN里查找一下ASP.NET的Forms验证的文章。看一下在forms验证时对FormsIdentity类的使用,有些信息保存到FormsIdentity类的实例里,在使用的时候就可以context.user.identity.name提取出来。
|
在登录页面上:
密码验证通过后:FormsAuthentication.RedirectFromLoginPage(yourname.Text,false);
在定向到的页面上:
string getname = User.Identity.Name;
你看看SDK关于安全性--"基于窗体的身份验证"的例子,会有帮助.
要想将Session赋值给User.Identity.Name,可以在登陆页将Number.Text赋值给Session。
你可以用自己的类放到user.Identity中。Context.User.Identity.Name的意思是当前用户的名字。可以放你任何想要的东西。不过放的时候要注意,可以用一下代码:
HttpContext.Current.User = new GenericPrincipal(object, “”);
object是你自己定义的类。
__________________________________
查看文章
|
//感谢百度,感谢我的hy导师,感谢各位师兄师弟师姐师妹,感谢毛主席,感谢基督耶稣,感谢默罕默德,感谢和谐 今天做了一个身份验证页面,基本实现功能,却不能显示当前用户姓名,自己MSDN半天一无所获,问题就在Context.User.Identity.Name;Context是HttpContext类,User属性Gets or sets security information for the current HTTP request,再查identity是IIdentity类型的接口;Name是它的Public Properties,可以Gets the name of the current user。依旧木有办法。网上的大虾们说是验证方式的问题,就知道Form方式,加到Web.cofig里,直接搞定!!!! ////////////////////////////粘网络资源,共享快乐 (1)在ASP.NET中有三种身份验证方式。当使用其中的一种来验证当前用户并通过时,必然要在服务器及客户端之间保存一种验证票据来保存验证信息。.NET提供类似于IIdentity的接口来完成该功能。请楼主注意,context.user是IPrincipal类型接口,而identity是IIdentity类型的接口。有四种类FormsIdentity GenericIdentity PassportIdentity WindowsIdentity实现了IIdentity接口。这几种类对应于.NET的几种验证模式。以上也差不多是废话,只是说了一下。 不过,请楼主看一下以上说的, 再对MSDN里查找一下ASP.NET的Forms验证的文章。看一下在forms验证时对FormsIdentity类的使用,有些信息保存到FormsIdentity类的实例里,在使用的时候就可以context.user.identity.name提取出来。 (2)Context.User.Identity.Name总是为空,望高手指教为什么? 附上:Web.config//只解决本问题,其他问题再说 <system.web> </system.web> |