2014-05-02 46 views
2

我正在尋找關於將現有Web Forms asp.net應用程序轉換爲使用Windows Azure Active Directory身份驗證(WAAD)的分步指南。在現有Webform上集成WAAD asp.net

我們可以假設我們不必將用戶轉換/遷移到Azure AD。

供參考:我沒有任何問題創建使用VS2013連接到WAAD的空白WebApplication,但我不清楚爲什麼需要在現有的Webform/MVC混合應用程序中進行更改。

感謝

+0

我正在處理同樣的事情。你有沒有在這方面找到任何幫助? – chrismay

+0

請參閱下面的建議解決方案 – Haroon

回答

1

我創建使用概述http://www.cloudidentity.com/blog/2014/02/20/ws-federation-in-microsoft-owin-componentsa-quick-start/

移動的步驟一個空白的項目/從空白項目

<configuration> 
 
    <configSections> 
 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
 
    <section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
 
    <section name="system.identityModel.services" type="System.IdentityModel.Services.Configuration.SystemIdentityModelServicesSection, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
 
    </configSections> 
 
    <appSettings> 
 
    <add key="ida:FederationMetadataLocation" value="https://login.windows.net/myorganizationdomain.com/FederationMetadata/2007-06/FederationMetadata.xml" /> 
 
    <add key="ida:Realm" value="https://mywebsite.com/myproject" /> 
 
    <add key="ida:AudienceUri" value="https://localhost:44318/" /> 
 
    </appSettings> 
 
    <connectionStrings> 
 
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-myproject.mdf;Initial Catalog=aspnet-myproject;Integrated Security=True" providerName="System.Data.SqlClient" /> 
 
    </connectionStrings> 
 
    <system.web> 
 
    <authentication mode="None" /> 
 
    <authorization> 
 
     <deny users="?" /> 
 
    </authorization> 
 
    <compilation debug="true" targetFramework="4.5.1" /> 
 
    <httpRuntime targetFramework="4.5.1" requestValidationMode="4.5" /> 
 
    </system.web> 
 

 
<system.identityModel> 
 
    <identityConfiguration> 
 
    <issuerNameRegistry type="myproject.Utils.DatabaseIssuerNameRegistry, myProject" /> 
 
    <audienceUris> 
 
     <add value="https://mywebsite.com/myproject" /> 
 
    </audienceUris> 
 
    <securityTokenHandlers> 
 
     <add type="System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
 
     <remove type="System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
 
    </securityTokenHandlers> 
 
    <certificateValidation certificateValidationMode="None" /> 
 
    </identityConfiguration> 
 
</system.identityModel> 
 
<system.webServer> 
 
    <modules> 
 
    <add name="WSFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" /> 
 
    <add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" /> 
 
    </modules> 
 
</system.webServer> 
 
<system.identityModel.services> 
 
    <federationConfiguration> 
 
    <cookieHandler requireSsl="true" /> 
 
    <wsFederation passiveRedirectEnabled="true" issuer="https://login.windows.net/myorganizationdomain.com/wsfed" realm="https://mywebsite.com/myproject" requireHttps="true" reply="https://localhost:44318/" persistentCookiesOnPassiveRedirects="true" /> 
 
    </federationConfiguration> 
 
</system.identityModel.services>

  • 複製的web.config中的部分複製生成的co從Utils 文件夾中將DatabaseIssuerNameRegistry.cs從「空白」項目拖入現有項目中。
  • 副本theTenantRegistrationModels.cs和TenantDbContext.cs從「空白」 項目到現有項目
  • 從「空白」項目複製到IdentityConfig.cs現有項目

在Global.asx。 CS添加以下內容

IdentityConfig.ConfigureIdentity();