Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.Net成员资格(Visual Studio 2012和Web表单)_Asp.net_Webforms_Asp.net Membership_Profile - Fatal编程技术网

ASP.Net成员资格(Visual Studio 2012和Web表单)

ASP.Net成员资格(Visual Studio 2012和Web表单),asp.net,webforms,asp.net-membership,profile,Asp.net,Webforms,Asp.net Membership,Profile,我正在WebForms项目中使用成员资格提供者(身份的前身)。我能够让用户开箱即用。我注册了一些用户,ASP.Net在我的数据库中创建了以下表格 dbo.Memberships dbo.Profiles dbo.Rules dbo.Users dbo.UsersInRoles dbo.UsersOpenAuthAccounts dbo.UsersOpenAuthData 我很确定这就是会员资格所需的全部表格组。我已成功限制登录用户访问我的网站。我已经创建了角色,并开始在页面中定义站点的部分,这

我正在WebForms项目中使用成员资格提供者(身份的前身)。我能够让用户开箱即用。我注册了一些用户,ASP.Net在我的数据库中创建了以下表格

dbo.Memberships
dbo.Profiles
dbo.Rules
dbo.Users
dbo.UsersInRoles
dbo.UsersOpenAuthAccounts
dbo.UsersOpenAuthData
我很确定这就是会员资格所需的全部表格组。我已成功限制登录用户访问我的网站。我已经创建了角色,并开始在页面中定义站点的部分,这些部分仅限于具有特定角色的用户

我的问题是为用户添加其他字段

到目前为止,我只是简单地将附加信息添加到web.config文件的profiles部分。我当前在我的web.config中定义了以下内容:

<authentication mode="Forms">
  <forms loginUrl="/Account/Login.aspx" timeout="2880" defaultUrl="~/Projects.aspx" />
</authentication>
<authorization>
  <deny users="?" />
  <deny roles="Admin" />
</authorization>
<profile defaultProvider="SqlProvider">
  <providers >
    <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
  </providers>
  <properties>
    <add name="fname" />
    <add name="lname" />
    <add name="skype" />
    <add name="phone" />
  </properties>
</profile>
<membership defaultProvider="DefaultMembershipProvider">
  <providers>
    <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
  </providers>
</membership>
<roleManager enabled="true" defaultProvider="DefaultRoleProvider">
  <providers>
    <add connectionStringName="DefaultConnection" applicationName="/" name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </providers>
</roleManager>

从我所读到的关于概要文件的内容来看,添加额外信息的方式是,它只需进行最小的修改就可以工作,类似于我上面所做的。我错过什么了吗?有没有好的教程可以使用Web表单一步一步地介绍这一点?我一直在搜索信息和教程,因此找到了有关角色和配置文件的microsoft链接。我就是这样走到这一步的。我习惯于身份,但不能在这个项目中使用它。任何帮助都将不胜感激,或者只是朝着正确的方向踢一脚。

正如爱尔兰酋长所说,Web应用程序项目中的配置文件存在问题

许多人不喜欢概要文件,因为它存储为XML文件,您无法轻松查询它们

相反,我们创建单独的表来存储自定义配置文件。你也可以看看

比如说,


如果您正在开发新的应用程序,您可能需要查看用户表中哪些允许自定义列。

配置文件仅在网站项目模板中开箱即用。你将不得不实现自定义配置文件,但已经有很多链接指向它:)这对我没有多大帮助。网站项目模板只?听起来不对……我使用的是现成的基本WebForms模板。我不知道你那是什么意思。我的应用程序正在处理角色和即时注册,为什么我不能使用配置文件?这是我上次在Web表单配置文件中必须使用的:谢谢,我将开始检查,担心问题是否正确。我们在这个项目上有一个中断,我们刚刚回到它。我很感激你的回答,我们采纳了这个建议,做了一些非常类似的事情。
<profile defaultProvider="SqlProvider">
  <providers >
    ...
  </providers>
  <properties>
    <add name="fname" />
    <add name="lname" />
    <add name="skype" />
    <add name="phone" />
  </properties>
</profile>
<%@ Page Title="Register" Language="C#" MasterPageFile="~/DashUser.Master" AutoEventWireup="true" CodeBehind="Register.aspx.cs" Inherits="ArchiTrak.Account.Register" %>

<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="BodyContent">

        <h2 class="form-signin-heading raleway"><%: Title %>.</h2>

<asp:CreateUserWizard runat="server" ID="RegisterUser" ViewStateMode="Disabled" OnCreatedUser="RegisterUser_CreatedUser">
    <LayoutTemplate>
        <asp:PlaceHolder runat="server" ID="wizardStepPlaceholder" />
        <asp:PlaceHolder runat="server" ID="navigationPlaceholder" />
    </LayoutTemplate>
    <WizardSteps>
        <asp:CreateUserWizardStep runat="server" ID="RegisterUserWizardStep">
            <ContentTemplate>

            <div class="container">

                <div class="row">
                    <div class="col-md-6">
                    <p class="raleway">
                        Passwords are required to be a minimum of <%: Membership.MinRequiredPasswordLength %> characters in length.
                    </p>

                    <p class="validation-summary-errors">
                        <asp:Literal runat="server" ID="ErrorMessage" />
                    </p>

                    <asp:TextBox class="form-control" runat="server" ID="UserName" placeholder="User Name"/>
                    <asp:RequiredFieldValidator runat="server" ControlToValidate="UserName"
                        CssClass="field-validation-error" ErrorMessage="The user name field is required." />

                    <asp:TextBox class="form-control" runat="server" ID="fname" placeholder="First Name"/>
                    <asp:RequiredFieldValidator runat="server" ControlToValidate="fname"
                        CssClass="field-validation-error" ErrorMessage="The First Name field is required." />

                    <asp:TextBox class="form-control" runat="server" ID="lname" placeholder="Last Name"/>
                    <asp:RequiredFieldValidator runat="server" ControlToValidate="lname"
                        CssClass="field-validation-error" ErrorMessage="The Last Name field is required." />

                    <asp:TextBox class="form-control" runat="server" ID="phone" placeholder="Phone Number"/>
                    <asp:RequiredFieldValidator runat="server" ControlToValidate="phone"
                        CssClass="field-validation-error" ErrorMessage="The Phone field is required." />

                    <asp:TextBox class="form-control" runat="server" ID="skype" placeholder="Skype Account"/>
                    <asp:RequiredFieldValidator runat="server" ControlToValidate="skype"
                        CssClass="field-validation-error" ErrorMessage="The Skype field is required." />


                    <asp:TextBox class="form-control" runat="server" ID="Email" TextMode="Email" placeholder="Email"/>
                    <asp:RequiredFieldValidator runat="server" ControlToValidate="Email"
                        CssClass="field-validation-error" ErrorMessage="The email address field is required." />


                    <asp:TextBox class="form-control" runat="server" ID="Password" TextMode="Password" placeholder="Password"/>
                    <asp:RequiredFieldValidator runat="server" ControlToValidate="Password"
                        CssClass="field-validation-error" ErrorMessage="The password field is required."/>


                    <asp:TextBox class="form-control" runat="server" ID="ConfirmPassword" TextMode="Password" placeholder="Password"/>
                    <asp:RequiredFieldValidator runat="server" ControlToValidate="ConfirmPassword"
                            CssClass="field-validation-error" Display="Dynamic" ErrorMessage="The confirm password field is required." />
                    <asp:CompareValidator runat="server" ControlToCompare="Password" ControlToValidate="ConfirmPassword"
                                     CssClass="field-validation-error" Display="Dynamic" ErrorMessage="The password and confirmation password do not match." />

                    <br />
                    <asp:Button runat="server" CommandName="MoveNext" Text="Register" CssClass="btn btn-lg btn-primary btn-block"/>
                    </div>

                </div>
            </div>

            </ContentTemplate>
            <CustomNavigationTemplate />
        </asp:CreateUserWizardStep>
    </WizardSteps>
</asp:CreateUserWizard>
</asp:Content>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.AspNet.Membership.OpenAuth;

namespace ArchiTrak.Account
{
    public partial class Register : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            RegisterUser.ContinueDestinationPageUrl = Request.QueryString["ReturnUrl"];
        }

        protected void RegisterUser_CreatedUser(object sender, EventArgs e)
        {
            FormsAuthentication.SetAuthCookie(RegisterUser.UserName, createPersistentCookie: false);

            string continueUrl = RegisterUser.ContinueDestinationPageUrl;
            if (!OpenAuth.IsLocalUrl(continueUrl))
            {
                continueUrl = "~/Projects.aspx";
            }
            Response.Redirect(continueUrl);
        }
    }
}