मैं एक सीएस प्रमुख हूं और मैंने अभी एक एएसपीनेट साइट तैयार की है, और साइट के लिए मुझे एक लॉगिन प्रमाणीकरण प्रणाली की आवश्यकता है ... मैं SQLMembershipProvider का उपयोग नहीं करना चाहता था क्योंकि मैं वास्तव में सीखना चाहता था अपने आप को कैसे बनाना है ... वैसे भी यही वह है जो मैं आया था, और मैं सोच रहा था कि कोई मुझे कुछ प्रतिक्रिया, टिप्स या सलाह दे सकता है।एएसपीनेट प्रमाणीकरण
अग्रिम धन्यवाद
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Security.Cryptography;
/// <summary>
/// Summary description for PwEncrypt
/// </summary>
public class PwEncrypt
{
public const int DefaultSaltSize = 5;
private static string CreateSalt()
{
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] buffer = new byte[DefaultSaltSize];
rng.GetBytes(buffer);
return Convert.ToBase64String(buffer);
}
public static string CreateHash(string password, out string salt)
{
salt = CreateSalt();
string saltAndPassword = String.Concat(password, salt);
string hashedPassword = FormsAuthentication.HashPasswordForStoringInConfigFile(saltAndPassword, "SHA1");
hashedPassword = string.Concat(hashedPassword, salt);
return hashedPassword;
}
public static string CreateHashAndGetSalt(string password, string salt)
{
string saltAndPassword = String.Concat(password, salt);
string hashedPassword = FormsAuthentication.HashPasswordForStoringInConfigFile(saltAndPassword, "SHA1");
hashedPassword = string.Concat(hashedPassword, salt);
return hashedPassword;
}
public static bool comparePassword(string insertedPassword, string incUserName, out string newEncryptedPassword, out string originalPassword)
{
databaseInteraction DBI = new databaseInteraction();
string actualPassword ="";
string salt = "";
DBI.getSaltandPassword(incUserName, out salt, out actualPassword);
string hashedIncPassword = PwEncrypt.CreateHashAndGetSalt(insertedPassword, salt);
// hashedIncPassword = string.Concat(hashedIncPassword, salt);
newEncryptedPassword = hashedIncPassword;
originalPassword = actualPassword;
if (newEncryptedPassword == originalPassword)
{
return true;
}
else { return false; }
}
यदि आप कस्टम सदस्यता प्रदाता बनाना चाहते हैं, तो आपको पहले सदस्यशिपप्रोवाइडर से उत्तराधिकारी होना होगा। और यदि आप थोड़ा सा Google करते हैं तो यह काफी अच्छी तरह से प्रलेखित है। –
अपने स्वयं के कस्टम प्रमाणीकरण और सत्र प्रबंधन योजनाओं को रोल करने का प्रयास न करें या अपने नियंत्रणों का निर्माण न करें जब तक कि आपके पास वास्तव में कोई अन्य विकल्प न हो। मैं बस इसे करना चाहता हूं, योग्य नहीं है। एक दिलचस्प पढ़ा: http://www.troyhunt.com/2010/07/owasp-top-10-for-net-developers-part-3.html –
@ क्रिस्टोफेजर्स बिल्कुल ... यह स्वयं को करने के लिए बहुत बोझिल है, अंतर्निहित सदस्यता प्रदाता अच्छी तरह से काम करते हैं, इसलिए उन्हें ऐसा करने के लिए कॉन्फ़िगर किया जाना चाहिए। – sinni800