gcogco10 Ответов: 2

Имя "расшифровать" не существует в текущем контексте


Привет Команда

У меня есть эта проблема, и у меня есть dll-файлы в папке bin, а также ссылка действительно соответствует моему проекту, чтобы увидеть их. Как мне решить эту проблему?

Что я уже пробовал:

//IdentityConfig.cs
<pre>using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.AspNet.Identity.Owin;
using Microsoft.Owin;
using Microsoft.Owin.Security;
using eNtsaTrainingRegistration.Models;
using System.Net.Mail;
using System.Net;
using System.Web.Configuration;

namespace eNtsaTrainingRegistration
{
    public class EmailService : IIdentityMessageService
    {
        public Task SendAsync(IdentityMessage message)
        {
            var mailMessage = new MailMessage();
            mailMessage.To.Add(new MailAddress(message.Destination));
            mailMessage.From = new MailAddress("Gcobani Mkontwana <ggcobani@gmail.com>");
            mailMessage.Subject = message.Subject;
            mailMessage.IsBodyHtml = true;
            mailMessage.Body = message.Body;

            using(var smtp = new SmtpClient())
            {
                var credential = new NetworkCredential
                {
                    UserName = WebConfigurationManager.AppSettings["UserName"],
                    Password = Helper.Decrypt(WebConfigurationManager.AppSettings["UserPassword"])
                };
                smtp.Credentials = credential;
                smtp.Host = WebConfigurationManager.AppSettings["SMTPName"];
                smtp.Port = int.Parse(WebConfigurationManager.AppSettings["SMTPPort"]);
                smtp.EnableSsl = true;
                smtp.Send(mailMessage);
            }
            return Task.FromResult(0);
        } 
        }
    }

// Помощник.в CS
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using System.IO;
using System.Security.Cryptography;

namespace eNtsaTrainingRegistration.Helper
{
    public class Helper
    {
        private const string PassPhrase = "3pAc0j$_56K?_S7c9gS!";

        //Encrypt password.
        public static string Encrypt(string strValue)
        {
            byte[] results;
            UTF8Encoding uTF8 = new UTF8Encoding();
            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
            byte[] deskey = md5.ComputeHash(uTF8.GetBytes(PassPhrase));
            TripleDESCryptoServiceProvider desalg = new TripleDESCryptoServiceProvider();
            desalg.Key = deskey;
            desalg.Mode = CipherMode.ECB;
            desalg.Padding = PaddingMode.PKCS7;
            byte[] encrypt_data = uTF8.GetBytes(strValue);

            try
            {
                ICryptoTransform encrytor = desalg.CreateEncryptor();
                results = encrytor.TransformFinalBlock(encrypt_data, 0, encrypt_data.Length);
            }
            finally
            {
                desalg.Clear();
                md5.Clear();
            }
            return Convert.ToBase64String(results);
        }

        //Decrypt password.

        public static string Decrypt(string strValue)
        {
            byte[] results;
            UTF8Encoding uTF8 = new UTF8Encoding();
            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
            byte[] deskey = md5.ComputeHash(uTF8.GetBytes(PassPhrase));
            TripleDESCryptoServiceProvider desalg = new TripleDESCryptoServiceProvider();
            desalg.Key = deskey;
            desalg.Mode = CipherMode.ECB;
            desalg.Padding = PaddingMode.PKCS7;
            byte[] decrypt_data = Convert.FromBase64String(strValue);
            try
            {
                ICryptoTransform decryptor = desalg.CreateDecryptor();
                results = decryptor.TransformFinalBlock(decrypt_data, 0, decrypt_data.Length);
            }
            finally
            {
                desalg.Clear();
                md5.Clear();
            }
            return uTF8.GetString(results);
        }

gcogco10

Я действительно использовал эту сборку, и даже сейчас я все еще сталкиваюсь с этой проблемой.

2 Ответов

Рейтинг:
9

Richard MacCutchan

Ваш вспомогательный класс находится в пространстве имен eNtsaTrainingRegistration.Helper поэтому вам нужно либо добавить Helper обозначение пространства имен для вашего вызова,

Password = Helper.Helper.Decrypt(WebConfigurationManager.AppSettings["UserPassword"])

или включите оператор using для полного пространства имен.


Рейтинг:
1

CHill60

Тебе нужно

using eNtsaTrainingRegistration.Helper;