Ответы пользователя по тегу ASP.NET
  • Как залогиниться от ВК в ASP MVC5?

    LifeAct
    @LifeAct Автор вопроса
    Создаем и раскручиваем, не ставим на конвейер
    Все, задача решена, с помощью https://github.com/DukeNuken/Duke.Owin.VkontakteMi... все делается сполпинка:

    Add nuget package - search for "Duke.Owin.VkontakteMiddleware"
    Add module in Startup.Auth.cs of your mvc 5 project
    app.UseVkontakteAuthentication("{AppId}", "{AppSecret}", "{PERMISSIONS}");

    {PERMISSIONS} - it is the comma-separated string. For example "email,audio" More info here vk.com/dev/permissions

    // GET: /Account/ExternalLoginCallback
            [AllowAnonymous]
            public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
            {
                var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
                if (loginInfo == null)
                {
                    return RedirectToAction("Login");
                }
    
                // Sign in the user with this external login provider if the user already has a login
                var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent: false);
                switch (result)
                {
                    case SignInStatus.Success:
                        return RedirectToLocal(returnUrl);
                    case SignInStatus.LockedOut:
                        return View("Lockout");
                    case SignInStatus.RequiresVerification:
                        return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = false });
                    case SignInStatus.Failure:
                    default:
                        // If the user does not have an account, then prompt the user to create an account
                        ViewBag.ReturnUrl = returnUrl;
                        ViewBag.LoginProvider = loginInfo.Login.LoginProvider;
                        return View("ExternalLoginConfirmation", new ExternalLoginConfirmationViewModel { Email = loginInfo.DefaultUserName });
                }
            }


    Единственное вылазит вот такая ошибка - https://github.com/DukeNuken/Duke.Owin.VkontakteMi... хоть конкретно для меня она не существенна, я сразу регистрирую по полученным данным локальную учетку. Но хорошо бы все таки решить
    Ответ написан
  • Как сделать выполнение метода на контроллере 1 раз в сутки в определенное время?

    LifeAct
    @LifeAct
    Создаем и раскручиваем, не ставим на конвейер
    public class TimerModule : IHttpModule
        {
            static Timer timer;
            long interval = 30000; //30 сек
            static object synclock = new object();
            static bool sent = false;
    
            public void Init(HttpApplication app)
            {
                timer = new Timer(new TimerCallback(SendEmail), null, 0, interval);
            }
    
            private void SendEmail(object obj)
                {
                lock (synclock)
                {
                    DateTime dd = DateTime.Now;
    
    
                    
                    if (dd.Hour == 12 && dd.Minute == 13 && sent == false)
                    {
    
                       //что то делаем
    
    
                        sent = true;
    
                    }
                    
                    else if (dd.Hour != 12 && dd.Minute != 13)
                    {
                        sent = false;
                    }
                }
            }
            public void Dispose()
            { }
        }
    Ответ написан
    Комментировать
  • Как в Asp.net MVC использовать https соединение?

    LifeAct
    @LifeAct
    Создаем и раскручиваем, не ставим на конвейер
    все ссылки в проекте меняем +

    - <rewrite>
    - <rules>
    - <!--  BEGIN rule TAG FOR HTTPS REDIRECT 
      --> 
    - <rule name="Force HTTPS" enabled="true">
      <match url="(.*)" ignoreCase="false" /> 
    - <conditions>
      <add input="{HTTPS}" pattern="off" /> 
      </conditions>
      <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" /> 
      </rule>
    - <!-- 
     END rule TAG FOR HTTPS REDIRECT 
    		!!!!!!!!!! If there are already other <rule> tags in your web.config, then place the copied <rule> tag before the other <rule> tags.
    Ответ написан
    Комментировать
  • Кэширование на IIS сервере (ASP.NET)?

    LifeAct
    @LifeAct
    Создаем и раскручиваем, не ставим на конвейер
    В веб конфиге:
    <system.webServer>
    
        
    	 <staticContent>
          <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="10.00:00:00" />
        </staticContent>
        
       <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
          <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="9" />
          <dynamicTypes>
            <add mimeType="text/*" enabled="true" />
            <add mimeType="message/*" enabled="true" />
            <add mimeType="application/x-javascript" enabled="true" />
            <add mimeType="application/json" enabled="true" />
            <add mimeType="*/*" enabled="false" />
          </dynamicTypes>
          <staticTypes>
            <add mimeType="text/*" enabled="true" />
            <add mimeType="message/*" enabled="true" />
            <add mimeType="application/x-javascript" enabled="true" />
            <add mimeType="application/atom+xml" enabled="true" />
            <add mimeType="application/xaml+xml" enabled="true" />
            <add mimeType="*/*" enabled="false" />
          </staticTypes>
        </httpCompression>
        
        <urlCompression doStaticCompression="true" doDynamicCompression="true" /> 
    .................


    но для разных версий IIS, разные могут быть наборы инструкций.... + вероятно не все директивы позволяет виртуальный хостер
    Ответ написан
    1 комментарий
  • Переход по ссылкам в asp.net mvc?

    LifeAct
    @LifeAct
    Создаем и раскручиваем, не ставим на конвейер
    ну это самые азы + в твоем вопросе несколько вопросов... можно так:

    @Html.ActionLink(item.TitleBL , "AphorismDetail", "Record", new { id = item.idBL }, null)
    
    //и так
    <a href="@Url.Action("Event", "Events", new { id = item.Event_Id })" title='item.Title'>@item.Title</a>


    в начале въехать в асп мвс не легко, вмне хорошо помогли эти видео уроки - курс видео уроков ASP.NET MVC 3
    Ответ написан
    Комментировать
  • ASP.NET Как правильно организовать работу с файлами?

    LifeAct
    @LifeAct
    Создаем и раскручиваем, не ставим на конвейер
    дабы избежать конфликтов?
    ---
    Уникальное имя файла!?

    ...
       try
                {
                    // Get parameters
                    int chunks = context.Request["chunks"] != null ? int.Parse(context.Request["chunks"]) : 1;
                    int chunk = context.Request["chunk"] != null ? int.Parse(context.Request["chunk"]) : 0;
                    string photoTempName = context.Request["name"] ?? string.Empty; //это уникальноеимя для файла
    ...


    +

    var myUniqueFileName = string.Format(@"{0}.txt", Guid.NewGuid());


    +

    System.IO.Path.GetRandomFileName()

    +
    public string GenerateFileName(string context)
    {
        return context + "_" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "_" + Guid.NewGuid().ToString("N");
    }
    
    filename1 = GenerateFileName("MeasurementData");
    filename2 = GenerateFileName("Image");


    Вариантов масса
    Ответ написан
  • Как лучше организовать английскую версию сайта asp mvc?

    LifeAct
    @LifeAct Автор вопроса
    Создаем и раскручиваем, не ставим на конвейер
    а что если сделать частично как WP:
    в папке лежит файл локализации ru.lng, en.lng при заходе на сайт автоматом определяется язык посетителя и подгружаются значения заголовков, лейблов и т д с соответствующего файла, также есть кнопка для принудительного переключения.
    Не знаю правда насколько быстро UI будет отрисовываться
    Ответ написан
    Комментировать
  • 301 redirect ASP.NET?

    LifeAct
    @LifeAct
    Создаем и раскручиваем, не ставим на конвейер
    для меня сработало так:

    <rewrite>
          <rules>
            <rule name="Redirect to non-www" stopProcessing="true">
              <match url="(.*)" negate="false"></match>
              <action type="Redirect" url="http://aforizmus.com/{R:1}"></action>
              <conditions>
                <add input="{HTTP_HOST}" pattern="^aforizmus\.com$" negate="true"></add>
              </conditions>
            </rule>
          </rules>
        </rewrite>
    Ответ написан