Mvc应用程序(默认情况下)用户注册

时间:2012-11-05 17:20:54

标签: c# asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我从默认情况下制作了一个Mvc4应用程序。我已经在开始时给出了它。

我需要将修改后的UserProfile存储在我的数据库中,因此我更改了UserProfile类以满足我的需求,并且还更改了RegisterModel类。现在当我注册某人时,我有一个正确的视图,包含所有必要的字段,但是,当我打开Server Explorer进行检查时,我得到的UserProfile表只有UserId和UserName(但是模型中也应该有firstname,姓氏,电子邮件等)。

为正确存储它们应该修改哪些内容?

1 个答案:

答案 0 :(得分:0)

几个月前,我在同一个地方。其中一个问题是注册故事没有完全开箱即用。例如,如果有人首先注册那么他们的外部帐户链接,他们可以结束多个配置文件。

成功登录后,我从webpages_OAuthMembership表中提取用户ID。

if(OAuthWebSecurity.Login(result.Provider,result.ProviderUserId,createPersistentCookie:true))             {

            var oAuthMembership = new EndeavorODataEntities().webpages_OAuthMembership
                .Where(u => u.ProviderUserId == result.ProviderUserId)
                .FirstOrDefault(x => x.Provider == result.Provider) ?? 
                new webpages_OAuthMembership
                        {
                            Provider = result.Provider,
                            ProviderUserId = result.ProviderUserId,
                        };

            TempData.Add("OAuthMembership", oAuthMembership);
            HttpContext.Response.Cookies.Add(new HttpCookie("UserId", oAuthMembership.UserId.ToString(CultureInfo.InvariantCulture)));

            return RedirectToAction("Summary", new { Controller = "Member", id = oAuthMembership.UserId.ToString(CultureInfo.InvariantCulture) });

从这里开始,我在另一个控制器上单独调用我的自定义“Membership”表,因为我将所有应用程序数据存储在与此OAuthMember表不同的数据库中。在我之前使用ASP.NET成员资格提供程序数据库的经验中,我始终将其作为与我的应用程序分开的数据库,并在多个应用程序中重用它。当然,如果你想修改UserProfile或其他表,正如你从上面的代码中看到的那样,这只是一个LINQ语句。没有什么可说的,你也无法在这里执行对UserProfiles表的连接。

在上面的示例中,我创建了一个edmx文件OAuthMembership.edmx,并从SQL导入我的表,就像任何其他数据库一样。 EndeavorODataEntities是我的连接字符串的名称,webpages_OAuthMembership是实际成员资格表的名称。

我添加了一些我用过的其他资源,可以帮到你。

http://blogs.msdn.com/b/webdev/archive/2012/08/22/extra-information-from-oauth-openid-provider.aspx

http://blogs.msdn.com/b/pranav_rastogi/archive/2012/08/23/plugging-custom-oauth-openid-providers.aspx

http://blogs.msdn.com/b/webdev/archive/2012/08/24/customizing-the-login-ui-when-using-oauth-openid.aspx

http://blogs.msdn.com/b/webdev/archive/2012/09/12/integrate-openauth-openid-with-your-existing-asp-net-application-using-universal-providers.aspx

http://blogs.msdn.com/b/webdev/archive/2012/09/19/configuring-your-asp-net-application-for-microsoft-oauth-account.aspx

http://blogs.msdn.com/b/rickandy/archive/2012/08/15/initializesimplemembership-attribute-and-simplemembership-exceptions.aspx