User1830143703 posted
Hi.
I'm trying to develop a custom authentication provider but even the simple example from Microsoft page isn't working... what am I doing wrong?
Example below.
In my IIS configuration I've added a custom authentication provider and basic authentication. My custom authentication provider link:
FtpTest.FtpAuthDemo, FtpTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f2c1943dc593cb2b, processorArchitecture=MSIL
When I'm trying to connect co FTP by CMD (using user from example) I get:
530-User cannot log in.
Win32 error:
Error details: An error occurred during authentication process.
And no more info, no log etc. Please help. Thanks
using System;
using Microsoft.Web.FtpServer;
namespace FtpAuthentication
{
public class FtpAuthDemo : BaseProvider,
IFtpAuthenticationProvider,
IFtpRoleProvider
{
bool IFtpAuthenticationProvider.AuthenticateUser(
string sessionId,
string siteName,
string userName,
string userPassword,
out string canonicalUserName)
{
// Note: You would add your own custom logic here.
canonicalUserName = userName;
string strUserName = "MyUser";
string strPassword = "MyPassword";
// Verify that the user name and password are valid.
// Note: In this example, the user name is case-insensitive
// and the password is case-sensitive.
if (((userName.Equals(strUserName,
StringComparison.OrdinalIgnoreCase)) == true) &&
userPassword == strPassword)
{
return true;
}
else
{
return false;
}
}
bool IFtpRoleProvider.IsUserInRole(
string sessionId,
string siteName,
string userName,
string userRole)
{
// Note: You would add your own custom logic here.
string strUserName = "MyUser";
string strRoleName = "MyRole";
// Verify that the user name and role name are valid.
// Note: In this example, both the user name and
// the role name are case-insensitive.
if (((userName.Equals(strUserName,
StringComparison.OrdinalIgnoreCase)) == true) &&
((userRole.Equals(strRoleName,
StringComparison.OrdinalIgnoreCase)) == true))
{
return true;
}
else
{
return false;
}
}
}
}