- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经使用自定义数据存储实现了我自己的自定义 MembershipProvider。到目前为止没有问题。我希望人们使用他们的电子邮件而不是用户名登录。因为我有自己的数据存储,所以这不是主要问题,我可以将电子邮件作为 MembershipProvider 的用户名传递。
我的问题是,如何在 FormsAuthenticationTicket 中存储额外的自定义用户数据?我想存储一些永远不会改变的东西,比如他们的用户 ID、名字/姓氏和国家/地区。我开始考虑使用 UserData 创建 FormsAuthenticationTicket,但很快就搞糊涂了。如何将多个内容存储到此 UserData 中,以及如何轻松在每个 ASP.NET MVC2 页面上读回此数据。我发现了很多示例,但没有一个在 MVC2 方面看起来真的那么好。必须有一个简单的方法来做到这一点。
在每次请求时从数据库中读取用户 ID、名字/姓氏和国家/地区是没有意义的,因为它们永远不会改变。另外,虽然我希望用户使用他们的电子邮件登录,但我想将他们的 UserId 存储在 auth cookie 中,以便它可以用于几乎每个用户相关的数据库查询而不是电子邮件(因为在所有表中,用户数据与 UserId 一起存储 - 而不是电子邮件,因为从技术上讲,电子邮件可以更改 - 我已经在涉及 MembershipProvider 时解决了这些问题。
在 ASP.NET MVC2 中存储像这样的额外用户数据的最佳实践是什么?
最佳答案
这篇文章展示了(除其他外)存储在 FormsAuthenticationTicket.UserData 中并从基本 Controller 读取它的细节。 http://www.west-wind.com/weblog/posts/899303.aspx
正如上面有人建议的那样,一个包含所有需要的信息的简单数据类和一对序列化/反序列化方法就可以完成这项工作。
public class UserState
{
public int Id { get; set; }
public Guid ActivationId { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
public bool IsAdmin { get; set; }
// Serialize
public override string ToString()
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
string result = serializer.Serialize(this);
return result;
}
// Deserialize
public static UserState FromString(string text)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Deserialize<UserState>(text);
}
}
}
关于c# - 在 MembershipProvider/FormsAuthenticationTicket 中存储额外的用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3389387/
场景: 构建供公司输入信息的应用程序。 我需要扩展 asp.net 中的内置成员资格提供程序。我的独特情况是我已经拥有每家公司的人口统计信息,但没有网络应用程序的用户 ID 和密码。我想用人口统计信息
我正在尝试使用带有 ASP MVC 的自定义 MembershipProvider 来保护我的应用程序中的 Controller 。 只是为了了解一些背景知识,我最终将使用网络服务来验证每个用户。 据
我想验证用于在 asp.net (.net 3.5) 中创建/更新用户的密码字段。密码将用于 MembershipProvider。 实现此目的的最佳方法是什么,以便验证将使用成员资格提供商的配置设置
我正在使用 SqlMemberShipProvider 并且它运行良好,但我希望 MembershipUser 具有一些其他属性,例如名字、姓氏、电话号码等。解决此问题的最佳方法是什么?我是否必须创建
我正在尝试在我的站点中实现 Asp.net 表单例份验证。通常,您在 web.config 中提供数据库连接字符串的名称。然而,由于我们的数据库设置有点复杂,我正在寻找一种方法来手动向 Members
我知道 MembershipProvider 位于 System.Web.Security 命名空间中。我在我的项目中添加了一个引用 System.Web,我在我的 .cs 文件中添加了一个 usin
我正在尝试在 asp.net 中编写自己的自定义 MembershipProvider,我想推出自己的登录页面。我们在登录时做了一些相当特殊的事情,所以我们不能使用默认的登录控件,所以我需要一种方法来
当覆盖 MembershipProvider 并直接调用它时,有没有办法在不手动查看配置文件的情况下填充 Initialize 方法的 NameValueCollection 配置参数? 很明显,这个
我对 .Net 中的 MembershipProvider 有一些问题,我一直无法找到明确的答案。 使用什么类型的加密,AES? 方法 EncryptPassword,它可以处理任何盐,还是我在传递它
我在我的 Web.Config 文件中注册了一个自定义 MembershipProvider 类。我正在使用 CaSTLe Windsor 使用控制反转,并且我已将自定义 MembershipProv
我正在构建一个自定义成员资格提供程序,我想知道我的自定义成员资格提供程序何时初始化? 实际上我正在使用 Entity Framework ,所以我需要了解是在每个方法中初始化 DbContext 还是
我正在尝试使用 CustomMembershipProvider 编写一些创建/删除/更改用户的测试。 CustomMembershipProvider 是 WebApp 程序集的一部分。 当我运行测
我的 web.config 和登录控件中有多个成员(member)提供程序, 我将根据带有提供商名称的下拉列表来使用提供商。 Web.config:
如何创建在 ASP.NET/MVC 网站中使用的 MembershipProvider? 它不会在您的数据库中生成您需要的表吗? 最佳答案 ASP.NET/MVC 的默认模板已在您的 web.conf
是否可以在不使用 MembershipUser 类的情况下创建自定义 MembershipProvider? 我想使用我自己的 User 类并保持整洁,我不想使用 MembershipUser 类,它
我正在努力拆分我目前拥有的现有工作应用程序,以便更好地理解 n 层结构。此应用程序使用自定义成员身份和角色提供程序,并带有表单例份验证。 当前,所有数据访问和业务逻辑都在同一个 ASP.Net 解决方
我尝试在我自己的数据库中使用自定义 MemberShipUser 实现自定义 MembershipPriver(具有特定的用户表模型): 这是完全不同的文件: iTwitterMembershipPr
ASP.NET 中的 MembershipProvider 类使用什么在 HTTP 级别对用户进行身份验证?是 Cookie 还是 Session? 最佳答案 简答: Cookies。 长答案: 都没
我最近开始研究 ASP.NET MVC,但这个问题也适用于经典的 ASP.NET。就其值(value)而言,我对表单例份验证和成员身份提供程序也不是很了解。 我正在尝试编写我自己的 Membershi
我已经使用自定义数据存储实现了我自己的自定义 MembershipProvider。到目前为止没有问题。我希望人们使用他们的电子邮件而不是用户名登录。因为我有自己的数据存储,所以这不是主要问题,我可以
我是一名优秀的程序员,十分优秀!