Visual Studio 2008で、訪問者がログインできる元従業員によって作成されたWebページがあります。
最近、私たちのマーケティング担当者の1人がWebデザインのクラスを受講しました。授業中に、この人物はVisualStudio2010の授業プロジェクトの一環として美しいWebサイトを作成しました。
今ではそれを機能させるために私にダンプされました、そして私は既存のウェブサイトがどのように機能したかわかりません。私はVisualStudioの両方のフレーバーを持っているので、それは問題ではありません。
今、私は以前のWebデザイナーがLoginViewコントロールをどのように実装したかを調べようとしています。
どういうわけか、ファイル内のエントリは、コントロールがアカウントを認証するWeb.config場所に影響を与えます。LoginView
コードをできるだけ短く、「要点」に保つために、必要と思われない限り、できる限り切り抜いていきます。
私たちのWeb.configファイルには次のエントリがあります:
<configuration>
<system.web>
<membership defaultProvider="CustomizedProvider">
<providers>
<clear/>
<add name="CustomizedProvider" type="System.Web.Security.SqlMembershipProvider" requiresUniqueEmail="false" connectionStringName="SqlASPNETDB" applicationName="JP2CODE" enablePasswordRetrieval="True" enablePasswordReset="True" passwordFormat="Clear" requiresQuestionAndAnswer="False" minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0"/>
</providers>
</membership>
<profile>
<providers>
<clear />
<add name="ProfileProvider" applicationName="JP2CODE" connectionStringName="SqlASPNETDB" type="System.Web.Profile.SqlProfileProvider"/>
</providers>
</profile>
<roleManager enabled="true" defaultProvider="CustomRoleProvider">
<providers>
<clear/>
<add connectionStringName="SqlASPNETDB" applicationName="JP2CODE" name="CustomRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>
<webParts>
<personalization defaultProvider="SqlPersonalizationProvider">
<providers>
<add name="SqlPersonalizationProvider" type="System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider" connectionStringName="SqlASPNETDB" applicationName="JP2CODE"/>
</providers>
<authorization>
<allow verbs="enterSharedScope" users="test,?"/>
</authorization>
</personalization>
</webParts>
</system.web>
</configuration>
注:applicationNameセキュリティ情報を無意識のうちに提供しないように、フィールドを変更しました。
Web.configでは、このファイル情報を新しいプロジェクトに直接コピーしますか?私たちのマーケティング担当者のWebプロジェクトにはWeb.config、私が本当に理解していない多くのカスタムエントリがファイルにあり、私はそれを破る責任を負いたくありません。
PublicKeyToken変更した場合、新しいものを作成する必要がありますapplicationNameか?
EXISTING Masterページでは、ログインルーチンはタグ内に含まれていますasp:Login。
<asp:Login ID="Login1" BackColor="#e7e0c5" Width="170px" VisibleWhenLoggedIn="False"
runat="server" FailureText='Invalid UserName/Password.'>
<LayoutTemplate>
<div style="width:181px;">
<asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">Login ID:</asp:Label>
<asp:TextBox ID="UserName" runat="server" Width="150px"></asp:TextBox><br />
<asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName" ErrorMessage="Required<br />" ValidationGroup="ctl00$Login1">*</asp:RequiredFieldValidator>
<asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Password:</asp:Label>
<asp:TextBox ID="Password" runat="server" TextMode="Password" Width="150px"></asp:TextBox><br />
<asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password" ErrorMessage="Required<br />" ValidationGroup="ctl00$Login1">*</asp:RequiredFieldValidator>
<asp:CheckBox ID="RememberMe" runat="server" Text="Remember" />
<asp:Button ID="LoginButton" runat="server" CommandName="Login" Text="Log In" ValidationGroup="ctl00$Login1" /><br />
<asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal>
</div>
</LayoutTemplate>
</asp:Login>
それが何でValidationGroup="ctl00$Login1"あるか、または新しいバージョンでそれを使用できるかどうかはわかりません。
マーケティングから提供されたPROTOTYPEマスターページでは、ログインルーチンが大きく異なります。それをどのように機能させるか、またはマーケティング担当者が機能しないものを挿入したかどうかはわかりません。それはもう少し広がっています:
<div style="width:181px;">
<asp:LoginName ID="LoginName1" runat="server" FormatString="Welcome {0}!" />
<asp:LoginView ID="LoginView2" runat="server">
<LoggedInTemplate>
<asp:LinkButton ID="LinkButton1" Font-Underline="true" PostBackUrl="~/ManageProfile.aspx" runat="server">Manage Profile</asp:LinkButton>
</LoggedInTemplate>
</asp:LoginView>
<asp:LoginStatus ID="LoginStatus1" Font-Underline="true" LoginText="" LogoutAction="Refresh" runat="server" />
</div>
<h3>Log In</h3>
<asp:LoginView ID="LoginView1" runat="server">
<AnonymousTemplate>
<asp:Login ID="Login1" BackColor="#E7E0C5" Width="170px" VisibleWhenLoggedIn="false"
runat="server" FailureText='Invalid UserName/Password.' >
</asp:Login>
</AnonymousTemplate>
<LoggedInTemplate>
Welcome <asp:LoginName ID="LoginName1" runat="server" /><br /><br />
<asp:LoginStatus ID="LoginStatus1" runat="server" /><br />
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/ManageProfile.aspx">Manage Profile</asp:HyperLink>
</LoggedInTemplate>
</asp:LoginView>
この新しいバージョンには、いくつかの異なるフィールドがあります。それらを実装しますか、それともカスタムログインが使用されないときに使用されるデフォルトのコントロールですか?