PDA

View Full Version : حرفه ای: sso(single sign on) در asp.net



aida-bigonah-shz
دوشنبه 19 آبان 1393, 12:59 عصر
با سلام ، من می خواهم single sign on را برای دامین و سای دامین هایم فعال کنم . برای اینکار ابتدا 2 dll : system.web.security و system.web.provider اضافه کردم و در سایت اصلی هم Login می شوم . در سایت اصلی ام :



<connectionStrings>

<clear/>
other connection string that connect to server and :
<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspn etdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
</connectionStrings>


<system.web>
<customErrors mode="Off"/>




<membership defaultProvider="CustomizedProvider">
<providers>
<add name="CustomizedProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="LocalSql" minRequiredPasswordLength="5" minRequiredNonalphanumericCharacters="0" maxInvalidPasswordAttempts="10"/>
</providers>
</membership>
<roleManager enabled="true">
<providers>
<remove name="AspNetSqlRoleProvider"/>
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSql1" applicationName="AssetManagement"/>
</providers>
</roleManager>
<!--<customErrors mode="Off" defaultRedirect="error.aspx"/>-->
<profile enabled="true" defaultProvider="AspNetSql">
<providers>
<clear />
<add name="AspNetSql" connectionStringName="localsql1" applicationName="/" type="System.Web.Profile.SqlProfileProvider"/>
</providers>
<properties>
<add name="Name" type="string"/>
<add name="Family" type="string"/>
<add name="phone" type="string"/>
<add name="address" type="string"/>
<add name="BirthDay" type="string"/>
<add name="Cell" type="string"/>
</properties>
</profile>

<authentication mode="Forms">
<forms loginUrl="http://accounts.domain.ir" defaultUrl="http://domain.ir"
protection="All"
timeout="30"
name=".ASPXAUTH"
path="/"
requireSSL="false"
domain=".domain.ir" cookieless="UseCookies" enableCrossAppRedirects="true" />
</authentication>


<authorization>
<allow users="*" />
</authorization>
<!-- Validation and decryption keys must exactly match and cannot
be set to "AutoGenerate". The validation and decryption
algorithms must also be the same. -->
<machineKey validationKey="..." decryptionKey="..." validation="SHA1"/>
<compilation debug="true" targetFramework="4.5"/>
<httpRuntime targetFramework="4.5"/>

</system.web>

<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None"/>
<add key="root" value="http://domain.ir/"/>
<add key="aspnet:UseLegacyFormsAuthenticationTicketCompatibi lity" value="true"/>
<add key="aspnet:UseLegacyEncryption" value="true"/>
<add key="aspnet:UseLegacyMachineKeyEncryption" value="true"/>
</appSettings>


گذاشته ام و در ساب دامین نیز :

<connectionStrings>
<clear/>
<add name="Con" connectionString="server connectionstring"Timeout=300" providerName="System.Data.SqlClient"/>
</connectionStrings>


و در بخش <system.web> , <appSettings> کدهایی که در بخش سرور در بالا در <system.web> , <appSettings> می باشد را قرار دادم .

پروژه اصلی روی دایمن با asp.net میباشد .
وقتی که پروژه را روی ساب دامین و دامین اصلی قرار می دهم در ساب دامین مقدار HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName].Value =null می باشد.لطفا راهنمایی کنید.آیا نیاز است که dll دیگری را اضافه کنم و یا تنظیمات server را تغییر دهم.این مشکل را با پروژه ساب دامین که با asp , mvc4 باشد دارم و وقتی که از mvc3 استفاده می کنم مشکل حل می شود.لطفا راهنمایی کنید.

barzin144
دوشنبه 19 آبان 1393, 13:40 عصر
دوست عزیز در هنگام پر کردن کوکی مقدار Domain را برای کوکی نام ساییتون را بگذارید.