//------------------------------------------------------------------------------ // <copyright file="PassportAuthentication.cs" company="Microsoft"> // Copyright (c) Microsoft Corporation. All rights reserved. // </copyright> //------------------------------------------------------------------------------ /***************************************************************************** From machine.config <!-- authentication Attributes: mode="[Windows|Forms|Passport|None]" --> <authentication mode="Windows"> <!-- forms Attributes: name="[cookie name]" - Name of the cookie used for Forms Authentication loginUrl="[url]" - Url to redirect client to for Authentication protection="[All|None|Encryption|Validation]" - Protection mode for data in cookie timeout="[minutes]" - Duration of time for cookie to be valid (reset on each request) path="/" - Sets the path for the cookie requireSSL="[true|false]" - Should the forms-authentication cookie be sent only over SSL slidingExpiration="[true|false]" - Should the forms-authentication-cookie and ticket be re-issued if they are about to expire defaultUrl="string" - Page to redirect to after login, if none has been specified cookieless="[UseCookies|UseUri|AutoDetect|UseDeviceProfile]" - Use Cookies or the URL path to store the forms authentication ticket domain="string" - Domain of the cookie --> <forms name=".ASPXAUTH" loginUrl="login.aspx" protection="All" timeout="30" path="/" requireSSL="false" slidingExpiration="true" defaultUrl="default.aspx" cookieless="UseDeviceProfile" enableCrossAppRedirects="false" > <!-- credentials Attributes: passwordFormat="[Clear|SHA1|MD5]" - format of user password value stored in <user> --> <credentials passwordFormat="SHA1"> <!-- <user name="UserName" password="password" /> --> </credentials> </forms> <!-- passport Attributes: redirectUrl=["url"] - Specifies the page to redirect to, if the page requires authentication, and the user has not signed on with passport --> <passport redirectUrl="internal" /> </authentication> <authentication mode="Windows"> <forms name=".ASPXAUTH" loginUrl="login.aspx" protection="All" timeout="30" path="/" requireSSL="false" slidingExpiration="true" defaultUrl="default.aspx" cookieless="UseDeviceProfile" enableCrossAppRedirects="false" > <credentials passwordFormat="SHA1"> </credentials> </forms> <passport redirectUrl="internal" /> </authentication> ******************************************************************************/ namespace System.Web.Configuration { using System; using System.Xml; using System.Configuration; using System.Collections.Specialized; using System.Collections; using System.Globalization; using System.IO; using System.Text; using System.Web.Util; using System.ComponentModel; using System.Security.Permissions; [Obsolete("This type is obsolete. The Passport authentication product is no longer supported and has been superseded by Live ID.")] public sealed class PassportAuthentication : ConfigurationElement { private static readonly ConfigurationElementProperty s_elemProperty = new ConfigurationElementProperty(new CallbackValidator(typeof(PassportAuthentication), Validate)); private static ConfigurationPropertyCollection _properties; private static readonly ConfigurationProperty _propRedirectUrl = new ConfigurationProperty("redirectUrl", typeof(string), "internal", ConfigurationPropertyOptions.None); static PassportAuthentication() { // Property initialization _properties = new ConfigurationPropertyCollection(); _properties.Add(_propRedirectUrl); } public PassportAuthentication() { } protected override ConfigurationPropertyCollection Properties { get { return _properties; } } [ConfigurationProperty("redirectUrl", DefaultValue = "internal")] [StringValidator()] public string RedirectUrl { get { return (string)base[_propRedirectUrl]; } set { base[_propRedirectUrl] = value; } } protected override ConfigurationElementProperty ElementProperty { get { return s_elemProperty; } } private static void Validate(object value) { if (value == null) { throw new ArgumentNullException("passport"); } Debug.Assert(value is PassportAuthentication); PassportAuthentication elem = (PassportAuthentication)value; if (StringUtil.StringStartsWith(elem.RedirectUrl, "\\\\") || (elem.RedirectUrl.Length > 1 && elem.RedirectUrl[1] == ':')) { throw new ConfigurationErrorsException(SR.GetString(SR.Auth_bad_url)); } } } // class PassportAuthentication }