Makale Özeti

Sharepoint 2010 üzerinde kimlik doğrulama sistemlerinden biri Forms Based Authentication’dır.Active Directory membership kullandığım Forms Based Authentication ile ilgili yazıma buradan ulaşabilirsiniz.Forms Based Authentication yazıma devam niteliğindeki bu yazımda Sharepoint 2010 üzerinde özelleştirilmiş bir login sayfası nasıl yaratılır bahsetmeye çalışacağım.

Makale

Sharepoint 2010 üzerinde kimlik doğrulama sistemlerinden biri Forms Based Authentication’dır.Active Directory membership kullandığım Forms Based Authentication ile ilgili yazıma buradan ulaşabilirsiniz.Forms Based Authentication yazıma devam niteliğindeki bu yazımda Sharepoint 2010 üzerinde özelleştirilmiş bir login sayfası nasıl yaratılır bahsetmeye çalışacağım.

Sitemizi Forms Based Authentication olarak ayarladıktan sonra giriş sayfamız Sharerepointin bize sunmuş olduğu default Login (“/_layouts/default.aspx “) sayfasıdır.

Uygulama ihtiyaçları çervesinde, kendi yazdığımız login sayfası ile Sharepoint sitemize login olmak isteyebiliriz. Örneğin siteye login olduğumuz anda harici bir veritabanında ya da sharepoint listesinde bir takım değişiklikler yapmak istiyoruz bunun için login sayfamızın codebehind’ına birseyler eklememiz gerekmektedir.Bu da bizim kendi login sayfamızı oluşturmamız anlamına geliyor.

Login sayfamızı oluşturmak için Visual Studio 2010 üzerinden Empty Sharepoint Project oluşturuyoruz.




Deploy as a Form Solution diyerek visual studio üzerinde projemizi oluşturuyoruz.



Oluşturduğumuz projemize “Add New Item” diyerek yeni bir application page oluşturuyoruz.

Projemize Microsoft.SharePoint.IdentityModel ‘i referans olarak ekliyoruz.Bu dll’i

C:\Windows\assembly\GAC_MSIL\Microsoft.SharePoint.IdentityModel\14.0.0.0__71e9bce111e9429c\Microsoft.SharePoint.IdentityModel.dll

altında bulabilirsiniz.

Referansı projemize ekledikten sonra NewLogin.aspx üzerinde ihtiyacımız doğrultusunda gerekli değişiklikleri yapıyoruz.

NewLogin.aspx kodu aşağıdaki gibidir

<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
<%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls"
    Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint,
 Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0,
 Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="NewLogin.aspx.cs" 
Inherits="SharePointProject1.Layouts.SharePointProject1.NewLogin"%>
<html>
<head id="Head1" runat="server">
    <title>Giris Sayfasi</title>
    <style type="text/css">
        .style1
        {
            width: 50%;
        }
    .auto-style1 {
		font-family: "Courier New", Courier, monospace;
	}
	.auto-style2 {
		color: #FF0000;
		background-color: #FFFFFF;
	}
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table class="style1">
        <tr>
               <td colspan="2" class="auto-style1" style="height: 25px">
               <span class="auto-style2">Bu siteye ulasmak için giris yapmalisiniz!</span>
               </td>
            </tr>
            <tr>
                <td>
                    <h6>Kullanici Adi :
                </h6>
                </td>
                <td>
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    <h6>Sifre :
                </h6>
                </td>
                <td>
                    <asp:TextBox ID="TextBox2" runat="server" TextMode="Password"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="Label1" runat="server"></asp:Label>
                </td>
                <td>
                    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Giris Yap" Font-Names="Verdana, Geneva, Tahoma, sans-serif" />
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>

NewLogin.aspx.cs kodu ise

using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.IdentityModel.Pages;
using Microsoft.SharePoint.IdentityModel;

namespace SharePointProject1.Layouts.SharePointProject1
{
    public partial class NewLogin : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            bool status = SPClaimsUtility.AuthenticateFormsUser(Context.Request.UrlReferrer, TextBox1.Text, TextBox2.Text);
            if (!status)
            {
                Label1.Text = "Wrong Userid or Password";
            }
            else
            {
                if (Context.Request.QueryString.Keys.Count > 1)
                {
               
                    Response.Redirect(Context.Request.QueryString["Source"].ToString());
                }
                else
                    Response.Redirect(Context.Request.QueryString["ReturnUrl"].ToString());
            }

        }
    }
}

şeklindedir.

Son olarak Sharepoint Forms Based Authentication olarak ayarladığımız web application’ın ayarlarına Central Administration’ından giderek bu webapplication altındaki siteler için hazırladığımız custom login page’i giriş sayfası olarak düzenliyoruz.

Central Administration — > Application Management — > Manage Web Applications üzerinden ilgili web application’ı seçerek, Ribbon üzerinden Authentication Providers’ı seçiyoruz.Zone Default’u seçiyoruz ve açılan ekranda “Sign In Page Url” değerini değiştiriyoruz.

~/_layouts/SharePointProject1/NewLogin.aspx

Tüm bu işlemler sonunda sitemize tekrar girmek istediğimizde oluşturduğumuz NewLogin.asxp sayfası karşımıza gelecektir.


Bu yazımda Sharepoint 2010 FBA uygulanmış bir site için Custom Login sayfası nasıl yaratılır bahsetmeye çalıştım ..

 

Sorularınız için bana serkan_akkaya@yahoo.com’dan ulaşabilirsiniz.

 

http://serkanakkaya.wordpress.com