Asp.net mvc 电子商务应用程序中的i原则和i身份-ASP.NET MVC

Asp.net mvc 电子商务应用程序中的i原则和i身份-ASP.NET MVC,asp.net-mvc,Asp.net Mvc,我试图弄清楚,当我使用自己的自定义成员资格提供程序(不是从ASP.NET成员资格继承)时,是否需要使用IPrincipal和IIdentity。我的意思是,这不只是用于非公共网站,您正在使用基于windows的帐户吗 我还想创建自己的cookie来存储身份验证数据,而不是.ASPXAUTH cookie 我们也在创建自己的角色提供程序,这样我们就不会使用Context.User.IsInRole功能,我会假设它具有IIdentity 我的意思是,这不只是用于你工作的非公共网站吗 使用基于wind

我试图弄清楚,当我使用自己的自定义成员资格提供程序(不是从ASP.NET成员资格继承)时,是否需要使用IPrincipal和IIdentity。我的意思是,这不只是用于非公共网站,您正在使用基于windows的帐户吗

我还想创建自己的cookie来存储身份验证数据,而不是.ASPXAUTH cookie

我们也在创建自己的角色提供程序,这样我们就不会使用Context.User.IsInRole功能,我会假设它具有IIdentity

我的意思是,这不只是用于你工作的非公共网站吗 使用基于windows的帐户


一点也不。无论您使用何种身份验证方案,这些接口都将与成员资格提供程序一起使用。例如,
HttpContext
的用户属性是一个
IPrincipal
,它包含一个
Identity
类型的
IIdentity
属性。因此,无论您使用何种身份验证,您都应该使用这些接口。当然,您可以编写自己的自定义实现。

我可以问一下您为什么要这样做吗?是的,我刚刚意识到……我总是使用HttpContext,是的,我现在明白了。嗯。我们没有使用我们自己的成员资格提供程序,只是确保我们的代码与ASP.NET成员资格提供程序无关。换句话说,我们用自己的方式做事情,用自己的DB表来验证用户。我们不喜欢ASP.NET成员提供这种开箱即用的方式。当你说编写自己的自定义实现时,这就是我们想要做的。我们将从HttpContext获取当前用户信息。我也在看这篇博文:@CoffeeAddict我建议将用户抽象出来,不要直接从HttpContext访问它。这将使控制器的单元测试更加容易。