首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

ADO.NET Data Service 訪問權限完整設定指南

     編輯:關於.NET

許多開發者詢問如何設定 ADO.NET Data Service 的存取權限。實際上,其權限設定方式與一般 ASP.NET 網站資源存取權限配置完全一致。本文將以 ADO.NET Data Service 範例為基礎,詳細說明如何規劃與實作資源訪問權限控制。

網站資源結構規劃

首先需要規劃 ASP.NET 網站的資源目錄結構,如下圖所示:

網站資源結構圖

Web.config 權限配置實作

在 Web.config 中依據上述結構進行權限設定,核心配置如下:

<authentication mode="Forms">
  <forms name="poweridtag" loginUrl="publicweb/login.aspx" />
</authentication>
<authorization>
  <deny users="?" />
</authorization>
<location path="ClientBin">
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</location>
<location path="publicweb">
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</location>

此配置採用表單驗證,預設拒絕匿名用戶存取,但針對 ClientBin(Silverlight 應用程式檔案)與 publicweb(公開頁面如登入頁)開放所有用戶存取。

建立登入服務

在 publicweb 目錄下新增 loginService.svc 服務,提供登入驗證功能:

[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class loginService
{
    [OperationContract]
    public string login(string userID, string password)
    {
        // 實際專案中應驗證 userID 與 password
        System.Web.Security.FormsAuthentication.SetAuthCookie("dbadmin", false);
        return "ok";
    }
}

Silverlight 客戶端呼叫登入服務

在 Silverlight 專案中加入服務參考,並透過非同步方式呼叫登入:

private void login_Click(object sender, RoutedEventArgs e)
{
    loginServer.loginServiceClient lsr = new SilverlightApplication.loginServer.loginServiceClient();
    lsr.loginCompleted += new EventHandler<SilverlightApplication.loginServer.loginCompletedEventArgs>(lsr_loginCompleted);
    lsr.loginAsync(this.userID.Text, this.password.Text);
}

void lsr_loginCompleted(object sender, SilverlightApplication.loginServer.loginCompletedEventArgs e)
{
    if (e.Result == "ok")
    {
        MessageBox.Show("登入成功");
    }
}

執行效果展示

完成上述設定後,執行應用程式即可看到登入流程正常運作:

登入介面

登入成功

資料服務存取

透過標準 ASP.NET 權限機制搭配 Silverlight 服務呼叫,即可輕鬆實現 ADO.NET Data Service 的安全存取控制。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved