设为首页 收藏本站
查看: 709|回复: 0

[经验分享] Silverlight WCF RIA网站使用ASP.NET身份验证发布在IIS及Windows Azure的配置

[复制链接]

尚未签到

发表于 2015-8-14 08:14:40 | 显示全部楼层 |阅读模式
  以下是host WCF的网站web.config配置。
  <?xml version="1.0" encoding="utf-8"?>


<configuration>
  <configSections>
    <sectionGroup name="system.serviceModel">
      <section name="domainServices" type="System.ServiceModel.DomainServices.Hosting.DomainServicesSection, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" allowDefinition="MachineToApplication" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <connectionStrings>
    <add name="CredentialsServices" connectionString="data source=SQLSERVERName;Initial Catalog=DBName;Persist Security Info=True;User ID=UserID;Password=UserPsw;" providerName="System.Data.SqlClient" />
  </connectionStrings>
  <system.web>
    <httpModules>
      <add name="DomainServiceModule" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </httpModules>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
      </assemblies>
    </compilation>
    <globalization culture="auto" uiCulture="auto" />
    <authentication mode="Forms">
      <forms name=".Inventory.UI_ASPXAUTH" timeout="2880" />
    </authentication>
    <membership>
      <providers>
        <clear />
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="CredentialsServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
      </providers>
    </membership>
    <roleManager enabled="true">
      <providers>
        <clear />
        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="CredentialsServices" applicationName="/" />
        <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
      </providers>
    </roleManager>
    <profile>
      <providers>
        <clear />
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="CredentialsServices" applicationName="/" />
      </providers>
      <properties>
        <add name="FriendlyName" />
      </properties>
    </profile>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true">
      <add name="DomainServiceModule" preCondition="managedHandler" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </modules>
        <directoryBrowse enabled="false" />
        <defaultDocument>
            <files>
                <add value="Default.html" />
            </files>
        </defaultDocument>
  </system.webServer>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <!--aspNetCompatibilityEnabled must be true else you will not could use AspNet Credentials service. Added by Cubean 2011.06.14 17:48-->
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
</configuration>   
  注意,其中aspNetCompatibilityEnabled="true" 必须有,否则身份验证服务无效。
  另外,发布在IIS后,需要在IIS的配置中将该网站身份验证中的ASP.NET模拟启用。否则身份验证将无效。
  

  对于仅需要在IIS中发布网站及服务的系统来讲,配置文件中的membership, roleManager, profile的provider信息都可省略,因为.net 4.0内置的asp.net身份认证接口已经缺省配置为AspNetSqlProvider。如果使用SQL Express产生的App_Data目录下的缺省的身份验证服务数据库ASPNETDB.MDF,那么配置文件中的connectionStrings也可以省略。
  如果发布在Windows Azure,则需要照以上配置,然后将其中的连接字符串改成Azure下的连接方式&#8212;&#8212;storage或者sql Azure。
  
  对于Silverlight的网站,为了能够在网站外存取该网站下的服务(譬如调试UI调用远程服务),需要加入DomainService服务。Visual Studio 2010会在Silverlight的WCF RIA程序生成向导中自动在web.config中加入跟DomainService相关的三条内容。另外,对于远程调用的服务,其发布的网站根目录必须添加一个clientacdesspolicy.xml文件。


<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*">
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>  </access-policy>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-98693-1-1.html 上篇帖子: Windows Azure Cloud Service (41) 修改云服务IIS托管管道模式为4.0经典模式 下篇帖子: Windows Azure Cloud Service (23) 使用Full IIS模式部署多站点和虚拟目录
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表