Недавно я создал приложение, которое может получить пароль пользователя, чье имя пользователя указывается в качестве параметра, я проверил код, он работает нормально, теперь я создал библиотеку классов, чтобы я мог добавить это в сборке на сервере SQL 2008, ниже приведен код моей библиотеки классов.
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, как показано ниже
CREATE ASSEMBLY DNN_USER_CREDENTIALS FROM 'E:\NBM SITES\SqlProjectDll (DO NOT DELETE)\UserCredentials.dll' WITH PERMISSION_SET = SAFE
я получил команду успешно завершено сообщение, затем я создал функцию, как показано ниже:
ALTER FUNCTION [dbo].[fn_UserCredentials](@UserName [nvarchar](max))
RETURNS [nvarchar](max) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [DNN_USER_CREDENTIALS].[DnnUserCredentials].[GetUserPassword]
и здесь я получил сообщение об успешном завершении команды, теперь, когда я пытался вызвать функцию, используя
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)
любые решения.