最近、私はユーザー名がパラメータとして提供されているユーザーのパスワードを取得するアプリケーションを作成しました。コードをチェックして正常に動作しました。クラスライブラリを作成しました。このassemnbly SQL Server 2008で、私のクラスライブラリのコードは以下のとおりです。私もここでSql-Clrセキュリティ例外
ALTER FUNCTION [dbo].[fn_UserCredentials](@UserName [nvarchar](max))
RETURNS [nvarchar](max) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [DNN_USER_CREDENTIALS].[DnnUserCredentials].[GetUserPassword]
:私は、コマンドが正常にメッセージを完了してしまった
CREATE ASSEMBLY DNN_USER_CREDENTIALS FROM 'E:\NBM SITES\SqlProjectDll (DO NOT DELETE)\UserCredentials.dll' WITH PERMISSION_SET = SAFE
以下のように
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Security;
public class DnnUserCredentials
{
public static string GetUserPassword(string username)
{
MembershipUser objUser = Membership.GetUser(username);
return objUser.GetPassword();
}
}
私はその後、私は以下のような関数を作成し、SQL Server 2008でアセンブリを作成しましたコマンドを正常に完了しました。メッセージを受け取ったときに関数を呼び出そうとしました。
SELECT [dbo].[fn_UserCredentials]('host')
それはエラーの下に私をスロー:
A .NET Framework error occurred during execution of user-defined routine or aggregate "fn_UserCredentials":
System.Security.SecurityException: Request for the permission of type 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
System.Security.SecurityException:
at DnnUserCredentials.GetUserPassword(String username)
あらゆるソリューションを提供しています。